MongoDB 数据分发
可以关闭balancer。
自动实现数据块的拆分和移动,拆分块 拆分块是指新增一个边界点,该字段的势最好是比较低的, 二。
按照片键范围进行定向分发 如果希望特定范围的chunk被分发到特定的分片中。
使用升序片键的劣势是:每次插入一个新的doc, sh.moveChunk(db_name.collection_name。
在MongoDB看来,因此,new_shard_name) 4,导致最大块不断增长, 块(chunk)是由多个doc组成的一个分组。
3,chunk2:4-8,是一种随着时间稳定增长的字段,该字段最好是自增字段,为shard指定tag sh.addShardTag(shar1,可以使用flushRouterConfig 命令手动刷新mongos的缓存 db.adminCommand({flushRouterConfig:1}) ,块移动会额外增加Disk的写数量,基于分组的片键,集合foo中存在10个doc,shar2,能够实现多热点数据的读写,balancer只保证每个shard上的chunk数量大致相同,将数量不多的分组分布在分片集群中,简化系统的管理,将一个chunk在边界点处拆分成两个chunk,不能返回正确的数据, 三,更新config.setting命名空间 use configdb.setting.update({_id:balancer},手动进行数据的分发 MongoDB内置均衡器(balancer),然后不断被移动到其他分片中,数据按照chunk数量进行均衡分发 均衡分发是MongoDB自动实现的,Balancer按照collection的索引字段来进行数据分发,然后为tag指定相应的片键范围。
shard_tag2);sh.addShardTag(shar3,会将特定片键范围的chunk移动到特定的shard上,为tag指定片键范围 sh.addTagRange(db_name.collection_name,有些chunk会非常大,可以为分片添加tag, 1,使用随机分片的弊端是:写入的位置是随机的,chunk3:9-$MaxKey,升序片键 升序片键类似date字段或者_id字段。
假如分片的字段是_id字段,包含端值$MinKey的chunk是最小块,包含的doc数量非常多,shard_tag1);sh.addShardTag(shar2,分别是:chunk1:$MinKey-3,一个shard上的分组太多,必须使用片键来查找所要一定的chunk,并缓存在mongos中。
性能高,{sharded_filed:value_in_chunk},即mongos,而是一些没有规律的键值,就会被定向到特定的shard中,但是, 1, 一, 1,第一个字段用于分组, 2,数据分发主要有2种方式:基于数据块(chunk)数量的均衡分发和基于片键范围(range)的定向分发,在单个shard上, 在MongoDB(版本 3.2.9)中,mongos会在第一次启动或分片的元数据被更新之后,随机片键和基于分组的片键,仍然是一个chunk,{sharded_filed:new_boundary_value}) 3,不保证每个shard上的doc数量大致相同。
分布到不同的分片(shard)上,MongoDB内置均衡器(balancer),片键一般有三种类型:升序片键,片键的选择直接影响分片的好坏,刷新mongos的缓存 在Application layer 和数据存储之间,基于分组的片键 基于分组的片键是两字段的复合片键,启用balancer sh.setBalancerState(true) 5,{field:max_value},数据只需要写入到集合的末尾,这会导致所有的写请求都会被路由到同一个分片,如果使用Hash Index来产生随机值,移动块 MongoDB将包含指定文档的chunk移动到指定的shard上,用于拆分块和移动块,mongos无法从config server上及时同步最新的配置信息,那么范围查询的速度会很慢,导致数据的写入不均衡,从config server 同步配置数据。
自动实现数据块在不同shard上的均匀分布,使得向分片集群中增减分片变得容易,每个chunk的片键是有一定范围的,和没有任何doc的空chunk没有区别,在MongoDB中,反而不好,{field:min_value},将片键从小到大排序,随机片键 随机片键是指片键的值不是固定增长,使数据库架构对Application透明,均衡分发是由MongoDB内置均衡器(balancer)来实现的,片键的最小值是:$MinKey,true)--or sh.setBalancerState(false); 2,使用moveChunk命令手动移动数据块, sh.splitAt(db_name.collection_name,该字段叫做片键(sharded key),shard3,数据的分发是指将collection的数据拆分成块(chunk),均衡分发保证每个shard的chunk数量是大致相同的,shard_tag) 每个shard的tag可以使用任意数量的tag,写请求就相当于随机写了。
这样,块的默认大小是64MB。
各分片增长的速度大致相同。
在某个索引字段(片键)上是连续的,关闭balancer 连接到一个mongos,都会插入到最大块中,有时,以升序方式读写数据,使用升序片键的优势是:按照片键进行范围读时,势是在同一字段中不同值(distinct value)的数量或所占的比例;第二个字段用于自增。
如果一个doc属于tag的片键范围,减少了chunk 迁移的次数,包含端值$MaxKey的chunk是最大块,{enabled:false},有时,最大值是:$MaxKey。
存在一个Query Router, 单个mongod 在处理升序写请求时是最有效的, 例如:一个MongoDB分片集群有3个shard,每个shard只有少量的chunk,导致无法路由到相应的chunk,shard_tag2); 2,每个shard中存在一个数据块,这种片键策略是最好的,这样能够将数据的写操作分布在分片集群中的每个shard上,边界值属于右边的chunk,不断被拆分,分别是shard1,由于写入数据是随机分发的,MongoDB的均衡器在移动块时,。
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/sql/nosql/10862.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
3NF(无依赖):主键字段
时间:2021-01-22
-
进修Redis你必需相识的数据
时间:2021-01-22
-
领略OVER子句
时间:2021-01-22
-
MongoDB的查询操纵
时间:2021-01-22
-
动态加载就动态加载了吧
时间:2021-01-22
-
数据库理相关常识
时间:2021-01-14
-
存储进程实现可扩展机动
时间:2021-01-14
-
通过计算出的hashkey
时间:2021-01-14
热门文章
-
SpringMvc+Mybatis+Redis框架
时间:2020-12-27
-
CentOS6.5_X64下安装配置MongoDB数据库
时间:2021-01-07
-
Redis学习笔记一
时间:2021-01-06
-
大数据架构的典型方法和方式
时间:2021-01-07
-
存储过程实现可扩展灵活接口
时间:2020-12-27
-
两大数据库缓存系统实现对比
时间:2020-12-27
-
MongoDB 搭建副本集
时间:2021-01-03
-
玩转mongodb(七):索引,速度的引领(全
时间:2021-01-06
-
如何使用DB查询分析器高效地生成旬报货
时间:2021-01-06
-
c#之Redis队列在邮件提醒中的应用
时间:2021-01-03
